<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //1 【作用域】
    //作用域是运行时代码中某些特定部分中变量，函数和对象的可访问性。
    // 换句话说，作用域决定了代码中变量和其他资源的可见性。
    function Fun(){
        let a = '内层变量'
        console.log(a);
    }
    Fun();//先执行函数
    // console.log(a);
    function fun(){
          let a ='变量'
    console.log(a);
    }
    fun()
    // console.log(a);//a is not defined
    //变量a在全局作用域没有声明，所以在全局作用域下取值会报错。
    //作用域就是一个独立的地盘，让变量不会外泄、暴露出去。
    //作用域最大的用处就是隔离变量，不同作用域下同名变量不会有冲突。
    // ES6之前JavaScript没有块级作用域，只有全局作用域和函数作用域。
    // ES6的到来，为我们提供了“块级作用域”，可通过新增命令let和const来体现。
</script>
</body>
</html>